package n7_wait_notify;


/*
----------------------------------------
|                                      /
|   使用 wait 和 notify 的正确姿势       /
|                                      /
|=======================================
 */
public class T5_wait_notify_推荐使用格式 {

    final static Object lock = new Object();
    static boolean b = false;


    public void anyMethod() throws InterruptedException {

        synchronized (lock){

            /*
            1. 条件不成立 等待！ 条件成立 跳过执行
            2. 被 notifyAll唤醒 从[-代码lock.wait()-]开始执行 循环到while判断， 再次不成立 将【-进入下一轮等待-】
             */
            while(!b){
                lock.wait();
            }
            // 干活

        }

        synchronized (lock){
            lock.notifyAll();
        }
    }


}
